package com.ruoyi.project.cwsk.packge.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import java.util.Date;

/**
 * 渠道包管理对象 sys_package
 * 
 * @author songzc
 * @date 2020-01-09
 */
public class Package extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** null */
    private Integer id;

    /** 渠道商Id */
    @Excel(name = "渠道商Id")
    private Integer channelId;

    /** 是否实时统计：0否，1是 */
    private Integer statRealTime;

    /** 渠道包名称 */
    @Excel(name = "渠道包名称")
    private String packageName;

    /** 游戏Id */
    @Excel(name = "游戏Id")
    private Integer gameId;

    /** 渠道号 */
    @Excel(name = "渠道号")
    private String cid;

    /** 包下载地址 */
    @Excel(name = "包下载地址")
    private String downloadUrl;

    /** 合作方式CPA或CPS */
    @Excel(name = "合作方式CPA或CPS")
    private String model;

    /** 渠道分成比例，保存小数 */
    private Long rate;

    /** 通道费 */
    private Long slottingFee;

    /** 注册单价 */
    private Long unitPrice;

    /** 是否显示单价 */
    private Long displayUnitPrice;

    /** 给数比例，用于CPA */
    private Long countRate;

    /** 是否可用，1为可用，0为禁用 */
    @Excel(name = "是否可用，1为可用，0为禁用")
    private Integer enabled;

    /** 合作游戏的版本号 */
    private String packageVersion;

    /** 0为试合作渠道，1为正式渠道 */
    @Excel(name = "0为试合作渠道，1为正式渠道")
    private Integer packageStatus;

    /** 上线时间 */
    private Date onlineTime;

    /** 下线时间 */
    private Date offlineTime;

    /** 给量比例 */
    private Long rechargeRate;

    /** CPS查看充值记录。0：不允许，1：允许 */
    private Integer rechargeRecordView;

    /** 包最后更新时间 */
    private Date gameApkLastModified;

    /** 子渠道用户ID */
    private Integer subUserId;

    /** 子渠道分成比例 */
    private Long subRate;

    /** 子渠道ID */
    private Integer subChannelId;

    /** 是否已打包,0未打包，1打包成功，2打包失败 */
    private Integer isPacked;

    /** 打包结果描述 */
    private String packMsg;

    /** 打包完成时间 */
    private Date packTime;

    /** 母包md5，打包时找最后一次打的包的md5比较，不一样说明母包已更新，需要重新反编译 */
    private String gamePackMd5;

    /** 代充折扣，不能小于推广游戏设置的折扣。限小于等于1，可带2位小数 */
    private Long generationDiscount;

    /** 代充返点 */
    private Long generationRebate;

    /** 代充佣金，渠道给子渠道设置的佣金率。限小于等于1，可带2位小数 */
    private Long generationCommission;

    public void setId(Integer id) 
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }
    public void setChannelId(Integer channelId) 
    {
        this.channelId = channelId;
    }

    public Integer getChannelId() 
    {
        return channelId;
    }
    public void setStatRealTime(Integer statRealTime) 
    {
        this.statRealTime = statRealTime;
    }

    public Integer getStatRealTime() 
    {
        return statRealTime;
    }
    public void setPackageName(String packageName) 
    {
        this.packageName = packageName;
    }

    public String getPackageName() 
    {
        return packageName;
    }
    public void setGameId(Integer gameId) 
    {
        this.gameId = gameId;
    }

    public Integer getGameId() 
    {
        return gameId;
    }
    public void setCid(String cid) 
    {
        this.cid = cid;
    }

    public String getCid() 
    {
        return cid;
    }
    public void setDownloadUrl(String downloadUrl) 
    {
        this.downloadUrl = downloadUrl;
    }

    public String getDownloadUrl() 
    {
        return downloadUrl;
    }
    public void setModel(String model) 
    {
        this.model = model;
    }

    public String getModel() 
    {
        return model;
    }
    public void setRate(Long rate) 
    {
        this.rate = rate;
    }

    public Long getRate() 
    {
        return rate;
    }
    public void setSlottingFee(Long slottingFee) 
    {
        this.slottingFee = slottingFee;
    }

    public Long getSlottingFee() 
    {
        return slottingFee;
    }
    public void setUnitPrice(Long unitPrice) 
    {
        this.unitPrice = unitPrice;
    }

    public Long getUnitPrice() 
    {
        return unitPrice;
    }
    public void setDisplayUnitPrice(Long displayUnitPrice) 
    {
        this.displayUnitPrice = displayUnitPrice;
    }

    public Long getDisplayUnitPrice() 
    {
        return displayUnitPrice;
    }
    public void setCountRate(Long countRate) 
    {
        this.countRate = countRate;
    }

    public Long getCountRate() 
    {
        return countRate;
    }
    public void setEnabled(Integer enabled) 
    {
        this.enabled = enabled;
    }

    public Integer getEnabled() 
    {
        return enabled;
    }
    public void setPackageVersion(String packageVersion) 
    {
        this.packageVersion = packageVersion;
    }

    public String getPackageVersion() 
    {
        return packageVersion;
    }
    public void setPackageStatus(Integer packageStatus) 
    {
        this.packageStatus = packageStatus;
    }

    public Integer getPackageStatus() 
    {
        return packageStatus;
    }
    public void setOnlineTime(Date onlineTime) 
    {
        this.onlineTime = onlineTime;
    }

    public Date getOnlineTime() 
    {
        return onlineTime;
    }
    public void setOfflineTime(Date offlineTime) 
    {
        this.offlineTime = offlineTime;
    }

    public Date getOfflineTime() 
    {
        return offlineTime;
    }
    public void setRechargeRate(Long rechargeRate) 
    {
        this.rechargeRate = rechargeRate;
    }

    public Long getRechargeRate() 
    {
        return rechargeRate;
    }
    public void setRechargeRecordView(Integer rechargeRecordView) 
    {
        this.rechargeRecordView = rechargeRecordView;
    }

    public Integer getRechargeRecordView() 
    {
        return rechargeRecordView;
    }
    public void setGameApkLastModified(Date gameApkLastModified) 
    {
        this.gameApkLastModified = gameApkLastModified;
    }

    public Date getGameApkLastModified() 
    {
        return gameApkLastModified;
    }
    public void setSubUserId(Integer subUserId) 
    {
        this.subUserId = subUserId;
    }

    public Integer getSubUserId() 
    {
        return subUserId;
    }
    public void setSubRate(Long subRate) 
    {
        this.subRate = subRate;
    }

    public Long getSubRate() 
    {
        return subRate;
    }
    public void setSubChannelId(Integer subChannelId) 
    {
        this.subChannelId = subChannelId;
    }

    public Integer getSubChannelId() 
    {
        return subChannelId;
    }
    public void setIsPacked(Integer isPacked) 
    {
        this.isPacked = isPacked;
    }

    public Integer getIsPacked() 
    {
        return isPacked;
    }
    public void setPackMsg(String packMsg) 
    {
        this.packMsg = packMsg;
    }

    public String getPackMsg() 
    {
        return packMsg;
    }
    public void setPackTime(Date packTime) 
    {
        this.packTime = packTime;
    }

    public Date getPackTime() 
    {
        return packTime;
    }
    public void setGamePackMd5(String gamePackMd5) 
    {
        this.gamePackMd5 = gamePackMd5;
    }

    public String getGamePackMd5() 
    {
        return gamePackMd5;
    }
    public void setGenerationDiscount(Long generationDiscount) 
    {
        this.generationDiscount = generationDiscount;
    }

    public Long getGenerationDiscount() 
    {
        return generationDiscount;
    }
    public void setGenerationRebate(Long generationRebate) 
    {
        this.generationRebate = generationRebate;
    }

    public Long getGenerationRebate() 
    {
        return generationRebate;
    }
    public void setGenerationCommission(Long generationCommission) 
    {
        this.generationCommission = generationCommission;
    }

    public Long getGenerationCommission() 
    {
        return generationCommission;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("channelId", getChannelId())
            .append("statRealTime", getStatRealTime())
            .append("packageName", getPackageName())
            .append("gameId", getGameId())
            .append("cid", getCid())
            .append("downloadUrl", getDownloadUrl())
            .append("model", getModel())
            .append("rate", getRate())
            .append("slottingFee", getSlottingFee())
            .append("unitPrice", getUnitPrice())
            .append("displayUnitPrice", getDisplayUnitPrice())
            .append("countRate", getCountRate())
            .append("updateTime", getUpdateTime())
            .append("enabled", getEnabled())
            .append("packageVersion", getPackageVersion())
            .append("packageStatus", getPackageStatus())
            .append("onlineTime", getOnlineTime())
            .append("offlineTime", getOfflineTime())
            .append("rechargeRate", getRechargeRate())
            .append("rechargeRecordView", getRechargeRecordView())
            .append("gameApkLastModified", getGameApkLastModified())
            .append("subUserId", getSubUserId())
            .append("subRate", getSubRate())
            .append("subChannelId", getSubChannelId())
            .append("isPacked", getIsPacked())
            .append("packMsg", getPackMsg())
            .append("packTime", getPackTime())
            .append("gamePackMd5", getGamePackMd5())
            .append("generationDiscount", getGenerationDiscount())
            .append("generationRebate", getGenerationRebate())
            .append("generationCommission", getGenerationCommission())
            .toString();
    }
}
